package com.mmy.service.impl.hotel;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.mmy.dao.hotel.THotelPlanRepository;
import com.mmy.dao.hotel.VHotelPlanRepository;
import com.mmy.domain.hotel.THotelPlan;
import com.mmy.domain.hotel.VHotelPlan;
import com.mmy.service.hotel.HotelPlanService;

@Service
public class HotelPlanServiceImpl implements HotelPlanService {
	@Autowired
	private VHotelPlanRepository vHotelPlanRepository;
	@Autowired
	private THotelPlanRepository tHotelPlanRepository;

	/**
	 * 通过计划单ID查询
	 *
	 * @author 创建人 hanxl 整理
	 * @date 创建日期 2020.10.29
	 */
	public VHotelPlan findByPlanID(int iPlanID) {
		// TODO Auto-generated method stub
		return vHotelPlanRepository.findByPlanID(iPlanID);
	}

	/**
	 * 前台景区菜单首页显示查询计划日期大于当前日期的景区ID
	 * 
	 * @author 创建人 hanxl
	 * @date 创建日期 2021.03.02
	 */
	public List<Integer> getHotelID(String strHotelPrice1, String strHotelPrice2) {
		if (strHotelPrice1 == null) {
			strHotelPrice1 = "";
		}
		if (strHotelPrice2 == null) {
			strHotelPrice2 = "";
		}
		List<Integer> lstHotelID = vHotelPlanRepository.getHotelID(strHotelPrice1, strHotelPrice2);
		return lstHotelID;
	}

	/**
	 * 前台景区菜单首页显示查询这些酒店ID的计划日期大于当前日期的计划最小价格
	 * 
	 * @author 创建人 hanxl
	 * @date 创建日期 2021.03.02
	 */

	public List<VHotelPlan> getMinPrice() {
		List<VHotelPlan> lstHotelPlan = vHotelPlanRepository.getMinPrice();
		return lstHotelPlan;
	}

	/**
	 * 查询该酒店时间在计划日期内的计划
	 * 
	 * @author 修改人 hanxl
	 * @date 创建日期2021.03.02
	 */
	public List<VHotelPlan> findPlanValid(String strRoomID) {
		int iRoomID = Integer.valueOf(strRoomID);
		List<VHotelPlan> lstHotelPlan = vHotelPlanRepository.findPlanValid(iRoomID);
		return lstHotelPlan;
	}

	/**
	 * 查询该酒店时间在计划日期内的房间号
	 * 
	 * @author 修改人 hanxl
	 * @date 创建日期2021.03.02
	 */
	public List<Map<String, Object>> findPlanValidRoomID(String strHotelID) {
		int iHotelID = Integer.valueOf(strHotelID);
		List<Map<String, Object>> lstHotelPlanRoom = vHotelPlanRepository.findPlanValidRoom(iHotelID);
		return lstHotelPlanRoom;
	}

	/**
	 * 函数功能说明：通过景区ID和时间查询：当天的计划单
	 *
	 * @param 参数说明
	 * @return 返回值说明 list
	 * @throws 异常处理说明
	 * @author 创建人hanxl
	 * @param strNowDate
	 * @date 创建日期 2021.3.02
	 */
	public List<Map<String, Object>> findPlanValidMap(int iRoomID, String strNowDate) {
		return vHotelPlanRepository.findPlanValidMap(iRoomID, strNowDate);
	}

	/**
	 * 
	 * 通过计划ID查询
	 *
	 * @author 创建人 hanxl
	 * @date 创建日期 2021.03.02
	 */
	public THotelPlan findByPlanID(String strPlanID) {
		int iPlanID = Integer.parseInt(strPlanID);
		return tHotelPlanRepository.findByPlanID(iPlanID);
	}

	/**
	 * 函数功能说明： 进入后台酒店信息页面查询该酒店房间计划详情信息
	 *
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.12.24
	 */
	public List<VHotelPlan> getByHotelID(String strHotelID) {
		int iHotelID = Integer.valueOf(strHotelID);
		return vHotelPlanRepository.findByHotelID(iHotelID);
	}

}
